import math


# 获取单位时间内的速度v = s/t
def get_average_velocity(s, t):
    return s / t


# 获取加速度 a = (v1-v0)/t V1为结束时的速度，V0为开始时的速度 t为时间的变化
def get_acceleration_t(v1, v0, t):
    return (v1 - v0) / t


# 获取加速度 a = (v1^2 - v0^2)/2s
def get_acceleration_s(v1, v0, s):
    return (pow(v1, 2) - pow(v0, 2)) / (2 * s)


# 获取加速度 s = 0.5at^2
def get_acceleration_uniform(s, t):
    return (2 * s) / pow(t, 2)


# 获取匀变速直线运动的最终速度 v0=初始速度,a=加速度,t=时间
def get_uniform_variable_rectilinear_motion_v_t(v0, a, t):
    return v0 + a * t


# 获取匀变速直线运动的最终速度
def get_uniform_variable_rectilinear_motion_v_v0(v0, a, s):
    return math.sqrt(2 * a * s + pow(v0, 2))


# 获取匀变速直线运动的位移 v0=初始速度,a=加速度,t=时间 s = v0t+0.5at^2
def get_uniform_variable_rectilinear_motion_s(v0, a, t):
    return v0 * t + 0.5 * a * pow(t, 2)


# 获取匀变速直线运动的位移
def get_uniform_variable_rectilinear_motion_s_a(v1, v0, a):
    return (pow(v1, 2) - pow(v0, 2)) / (2 * a)


print(get_uniform_variable_rectilinear_motion_s(0, 10, 2) / 2)
